package com.atguigu.bigdata.scala.chapter06

object Scala08_Object_Method {
    def main(args: Array[String]): Unit = {

        // TODO 面向对象编程 - 方法
        // scala中方法其实就是函数，只不过声明在类中
        val user = new User()
        //user.test()

        // java中声明一个类，默认继承Object，所以默认继承了Object中方法，这些方法都可以使用
        // scala中的类也存在这样的情况，不仅仅只有Object提供的方法，还有一些别的方法可以直接使用

        // 比较对象的内存地址
        // user.eq()

        // 想判断User对象和别的对象是否相等
        // 重写equals方法
        // isInstanceOf : 判断对象是否属于哪个类的实例
        // asInstanceOf : 将对象强制转换为某个类型

    }
    class User {
        var id : Int = _
        def test(): Unit = {
           println("zhangsan")
        }

        override def equals(o: Any): Boolean = {
            if ( o.isInstanceOf[User] ) {
                val other = o.asInstanceOf[User]
                this.id == other.id
            } else {
                false
            }
        }
    }
}